Geo-based connectivity awareness for better productivity

ABSTRACT

A server includes a network interface to interface with mobile computing devices operating within a geographical area, with at least one of the mobile computing devices providing a request for navigation instructions between two geo-locations based on prompting the user to select an optimized connectivity route prompt. A processor is coupled to the network interface and is configured to generate a network connectivity map based on varying cellular network connectivity metrics for the geographical area, and generate, based on the user-selected optimized connectivity route prompt, the navigation instructions between the two geo-locations to be provided to the at least one mobile communications device via said network interface. The navigation instructions are generated based on the network connectivity map to provide a single route that is optimized to include areas with strong cellular network connectivity metric values.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/838,769 filed Dec. 12, 2017, which is hereby incorporated herein inits entirety by reference.

TECHNICAL FIELD

The present disclosure relates to the field of mobile computing devices,and more particularly, to providing network connectivity basednavigation instructions to an enterprise mobile users while on the move.

BACKGROUND

Enterprise productivity software is aimed at boosting user productivityby allowing workers to reliably and securely work using a computingdevice regardless of its location. Enterprise productivity softwareincludes XenMobile, XenApp, and online collaboration tools, for example.

Variability in the quality and strength of Internet connectivity is achallenge when providing consistent and reliable connection experiencesfor remote and mobile users. Mobile users who are sales professionals,for example, frequently travel and typically need to participate inonline meetings and conference calls while travelling on the road.

However, when a mobile computing device is in use while the user istraveling on the road, an online meeting or conference call may bevulnerable to signal fluctuations, connectivity issues and calldisruptions. Consequently, there is a need to improve applicationperformance and user experience for a mobile user while on the move.

SUMMARY

A server includes a network interface to interface with mobile computingdevices operating within a geographical area, with at least one of themobile computing devices providing a request for navigation instructionsbetween two geo-locations based on prompting the user to select anoptimized connectivity route prompt. A processor is coupled to thenetwork interface and is configured to generate a network connectivitymap based on varying cellular network connectivity metrics for thegeographical area, and generate, based on the user-selected optimizedconnectivity route prompt, the navigation instructions between the twogeo-locations to be provided to the at least one mobile communicationsdevice via said network interface. The navigation instructions aregenerated based on the network connectivity map to provide a singleroute that is optimized to include areas with strong cellular networkconnectivity metric values.

The route provided by the processor may not be the most direct routebetween the two geo-locations within the geographical area.

The cellular network connectivity metrics may be based on at least onecellular network connectivity map from at least one cellular networkservice provider operating within the geographical area.

The cellular network connectivity metrics may be based on signalstrength measurements provided by the plurality of mobile computingdevices operating within the geographical area.

The signal strength measurements provided by each respective mobilecomputing device may further include geo-coordinates on where the signalstrength measurements were made. The signal strength measurementsprovided by each respective mobile computing device may includeidentification of a cellular network service provider operating with therespective mobile computing device.

Another aspect is directed to a method for operating a server asdescribed above to generate network connectivity based navigationinstructions for a mobile computing device. The method comprisesinterfacing with a plurality of mobile computing devices operatingwithin a geographical area, with at least one of the mobile computingdevices providing a request for navigation instructions between twogeo-locations based on prompting the user to select an optimizedconnectivity route prompt. A network connectivity map may be generatedbased on varying cellular network connectivity metrics for thegeographical area. Based on the user-selected optimized connectivityroute prompt, the navigation instructions may be generated between thetwo geo-locations to be provided to the at least one mobilecommunications device via the network interface. The navigationinstructions may be generated based on the network connectivity map toprovide a single route that is optimized to include areas with strongcellular network connectivity metric values.

Yet another aspect is directed to a non-transitory computer readablemedium for a server as described above, with the non-transitory computerreadable medium having a plurality of computer executable instructionsfor causing the server to generate network connectivity based navigationinstructions.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an embodiment of a network environment that providesnetwork connectivity based navigation instructions to mobile computingdevices executing a map application.

FIG. 2 is a block diagram a general computing device useful as anembodiment of the servers or the mobile computing devices illustrated inFIG. 1

FIG. 3 is a more detailed block diagram of a server and mobile computingdevice operating within the network environment as illustrated in FIG. 1.

FIG. 4 is a display of a network connectivity map generated by thegeo-connectivity analyzer illustrated in FIG. 3 .

FIG. 5 is a flow diagram illustrating the steps for generating networkconnectivity based navigation instructions for the mobile computingdevice illustrated in FIG. 3 .

DETAILED DESCRIPTION

The present description is made with reference to the accompanyingdrawings, in which exemplary embodiments are shown. However, manydifferent embodiments may be used, and thus the description should notbe construed as limited to the particular embodiments set forth herein.Rather, these embodiments are provided so that this disclosure will bethorough and complete. Like numbers refer to like elements throughout.

As a general introduction, a server is configured to provide networkconnectivity based navigation instructions between any two geolocationswithin a geographical area. Network connectivity based navigationinstructions are intended to enable business continuity anduninterrupted application access for enterprise mobile users while onthe move. The navigation routes optimize cellular network connectivityinstead of the shortest distance or the shortest time. This means thatthe navigation route provided to an enterprise mobile user may be longeras compared to other available routes so that continuity disruptions areminimized.

Referring initially to FIGS. 1-2 , a non-limiting illustrative networkenvironment useful for practicing embodiments described herein is firstdescribed. FIG. 1 illustrates one embodiment of a computing environment100 that includes one or more mobile computing devices 102A-102N incommunications with one or more servers 106A-106N via one or morenetworks 104. One or more cellular base stations 108 may be associatedwith a network provider to relay communications to and from the mobilecomputing devices 102A-102N. The mobile computing devices 102A-102N maybe generally referred to by reference 102, and the servers 106A-106N maybe generally referred to by reference 106.

In some embodiments, the mobile computing device 102 may execute,operate or otherwise provide an application that may be any one of thefollowing: software; a program; executable instructions; a virtualmachine; a hypervisor; a web browser; a web-based client; aclient-server application; a thin-client computing client; an ActiveXcontrol; a Java applet; software related to voice over internet protocol(VoIP) communications like a soft IP telephone; an application forstreaming video and/or audio; an application for facilitatingreal-time-data communications; a HTTP client; a FTP client; an Oscarclient; a Telnet client; or any other set of executable instructions.

Still other embodiments include a mobile computing device 102 thatdisplays application output generated by an application remotelyexecuting on a server 106. In these embodiments, the client device 102may display the application output in an application window, a browser,or other output window. In one embodiment, the application may be adesktop, while in other embodiments the application may be anapplication that generates a desktop.

In some embodiments, a server 106 may execute a remote presentationclient or other client or program that uses a thin-client orremote-display protocol to capture display output generated by anapplication executing on a server 106 and transmits the applicationdisplay output to a mobile computing device 102.

A server 106 may be any remote machine type such as, for example: a fileserver; an application server; a web server; a proxy server; anappliance; a network appliance; a gateway; an application gateway; agateway server; a virtualization server; a deployment server; a SecureSockets Layer Virtual Private Network (SSL VPN) server; a firewall; aweb server; an application server or as a master application server; aserver executing an active directory; or a server executing anapplication acceleration program that provides firewall functionality,application functionality, or load balancing functionality.

In some embodiments, a server 106 may be a RADIUS server that includes aremote authentication dial-in user service. In still other embodiments,a server 106 is a blade server. In yet other embodiments, a server 106executes a virtual machine providing, to a mobile computing device 102,access to a computing environment.

The server 106 may, in some embodiments, execute any one of thefollowing applications: a thin-client application using a thin-clientprotocol to transmit application display data to a client; or a remotedisplay presentation application. Another embodiment includes a server106 that is an application server such as: an email server that providesemail services; a web or Internet server; a desktop sharing server; acollaboration server; or any other type of application server. Stillother embodiments include a server 106 that executes a hosted serverapplication, such as a remote meeting or desktop sharing application.

In some embodiments, a server machine 106 may execute an application onbehalf of a user of a mobile computing device 102. In other embodiments,a server 106 executes a virtual machine, which provides an executionsession within which applications execute on behalf of a mobilecomputing device 102. In one of these embodiments, the execution sessionis a hosted desktop session. In another of these embodiments, theexecution session provides access to a computing environment, which maycomprise one or more of: an application, a plurality of applications, adesktop application, and a desktop session in which one or moreapplications may execute.

A mobile computing device 102 may be, for example, a client node thatseeks access to resources provided by a server 106. In otherembodiments, the server 106 may provide mobile computing devices 102with access to hosted resources. The server 106, in some embodiments,functions as a master node such that it communicates with one or moremobile computing device 102 or servers 106. In some embodiments, themaster node may identify and provide address information associated witha server 106 hosting a requested application, to one or more mobilecomputing devices 102 or servers 106.

In yet another embodiment, the server 106 presents the response to therequest to a mobile computing device 102 using a web interface. In oneembodiment, the mobile computing device 102 communicates directly withthe server 106 to access the identified application. In anotherembodiment, the mobile computing device 102 receives output data, suchas display data, generated by an execution of the identified applicationon the server 106.

One or more mobile computing devices 102, one or more servers 106, orboth may transmit data over one or more networks 104 installed withinthe computing environment 100. The network 104 may comprise one or moresub-networks, and may be installed between any combination of the mobilecomputing devices 102 and servers 106.

In some embodiments, the network 104 may be: a local-area network (LAN);a metropolitan area network (MAN); a wide area network (WAN); a primarynetwork comprised of multiple sub-networks located between the mobilecomputing devices 102 and the servers 106; a primary public network witha private sub-network; a primary private network with a publicsub-network; or a primary private network with a private sub-network.

Still further embodiments include a network 104 that may be any of thefollowing network types: a point to point network; a broadcast network;a telecommunications network; a data communication network; a computernetwork; an Asynchronous Transfer Mode (ATM) network; a SynchronousOptical Network (SONET) network; a Synchronous Digital Hierarchy (SDH)network; a wireless network; a wireline network; or a network 104 thatincludes a wireless link where the wireless link may be an infraredchannel or satellite band.

The network topology of the network 104 may differ within differentembodiments. Additional embodiments may include a network 104 of mobiletelephone networks that use a protocol to communicate among mobiledevices, where the protocol may be any one of the following: AdvancedMobile Phone System (AMPS); Time Division Multiple Access (TDMA); CodeDivision Multiple Access (CDMA); Global System for Mobile Communications(GSM); General Packet Radio Service (GPRS); Universal MobileTelecommunications System (UMTS); Evolution-Data Optimized (EV-DO); LongTerm Evolution (LTE); or any other protocol able to transmit data amongmobile devices like 802.11, Bluetooth, and Near Field Communication.

FIG. 2 depicts a block diagram of a general computing device 200 usefulfor practicing an embodiment of the mobile computing device 102 or theserver 106. The illustrated computing device 200 includes a centralprocessing unit (CPU) 221 and a main memory unit 222. The processingunit 221 communicates with the main memory 222 via a system bus 250.

The system bus 250 communicates with the following components: aprocessing unit 221; a main memory 122; storage memory 228; aninput/output (I/O) controller 123; display devices 224A-224N; aninstallation device 216; and a network interface 218. In one embodiment,the storage memory 228 includes: an operating system, software routines,and a client agent 220. The I/O controller 223, in some embodiments, isfurther connected to a keyboard 226, and a pointing device 227. Otherembodiments may include an I/O controller 223 connected to more than oneinput/output device 230A-230N.

In some embodiments, the processing unit 221 may include one or moreprocessing cores. For example, the processing unit 221 may have twocores, four cores, eight cores, etc. In one embodiment, the processingunit 221 may comprise one or more parallel processing cores. Theprocessing cores of the processing unit 221 may in some embodimentsaccess available memory as a global address space, or in otherembodiments, memory within the computing device 200 may be segmented andassigned to a particular core within the processing unit 221.

In one embodiment, the one or more processing cores or processors in thecomputing device 200 may each access local memory. In still anotherembodiment, memory within the computing device 200 may be shared amongone or more processors or processing cores, while other memory may beaccessed by particular processors or subsets of processors.

In embodiments where the computing device 200 includes more than oneprocessing unit 221, the multiple processing units 221 may be includedin a single integrated circuit (IC). These multiple processors, in someembodiments, may be linked together by an internal high speed bus, whichmay be referred to as an element interconnect bus.

The computing device 200, in some embodiments, may include a graphicsprocessor or a graphics-processing unit. The graphics processing unitmay include any combination of software and hardware, and may furtherinput graphics data and graphics instructions, render a graphic from theinputted data and instructions, and output the rendered graphic. In someembodiments, the graphics processing unit may be included within theprocessing unit 221. In other embodiments, the computing device 200 mayinclude one or more processing units 221, where at least one processingunit 221 is dedicated to processing and rendering graphics.

The local system bus 250 may, in some embodiments, also be used by thecentral processing unit 221 to communicate with more than one type ofI/O device 230A-230N. Other embodiments of the computing machine 200include an I/O device 230A-230N that is a video display 224 thatcommunicates with the CPU 221.

One embodiment of the computing device 200 provides support for any oneof the following installation devices 216: a CD-ROM drive, a CD-R/RWdrive, a DVD-ROM drive, tape drives of various formats, a universalserial bus (USB) device, Secure Digital card, Preboot ExecutionEnvironment (PXE) firmware, a bootable medium, a bootable CD, ahard-drive or any other device suitable for installing applications orsoftware.

Applications may in some embodiments include a client agent 220, or anyportion of a client agent 220. The computing device 200 may furtherinclude a storage device 228 that may be either one or more hard diskdrives, or one or more redundant arrays of independent disks; where thestorage device is configured to store an operating system, software,programs applications, or at least a portion of the client agent 220. Afurther embodiment of the computing device 200 includes an installationdevice 216 that is used as the storage device 228.

The computing device 200 may further include a network interface 218 tointerface to a LAN, WAN or the Internet through a variety of connectionsincluding, but not limited to, standard telephone lines, LAN or WANlinks (e.g., 802.11, T1, T3, 56 kb, X.25), broadband connections (e.g.,Integrated Services Digital Network (ISDN), Frame Relay, ATM, GigabitEthernet, Ethernet-over-SONET), wireless connections, or somecombination of any or all of the above. Connections may also beestablished using a variety of communication protocols (e.g., TCP/IP,Ethernet, Attached Resource Computer Network (ARCNET), SONET, SDH, FiberDistributed Data Interface (FDDI), RS232, RS485, IEEE 802.11, IEEE802.11a/b/g/n, CDMA, GSM, Wi-Fi, WiMax and direct asynchronousconnections).

One version of the computing device 200 includes a network interface 218able to communicate with additional computing devices via any typeand/or form of gateway or tunneling protocol such as Secure Socket Layer(SSL) or Transport Layer Security (TLS). Versions of the networkinterface 218 may comprise any one of: a built-in network adapter; anetwork interface card; a Personal Computer Memory Card InternationalAssociation (PCMCIA) network card; a card bus network adapter; awireless network adapter; a USB network adapter; a modem; or any otherdevice suitable for interfacing the computing device 200 to a networkcapable of communicating and performing the methods and systemsdescribed herein.

Embodiments of the computing device 200 include any one of the followingI/O devices 230A-230N: a keyboard 226; a pointing device 227; mice;trackpads; an optical pen; trackballs; microphones; drawing tablets;video displays; speakers; inkjet printers; laser printers; anddye-sublimation printers; or any other input/output device able toperform the methods and systems described herein.

An I/O controller 223 may in some embodiments connect to multiple I/Odevices 203A-230N to control the one or more I/O devices. Someembodiments of the I/O devices 230A-230N may be configured to providestorage or an installation device 216, while others may provide a USBinterface for receiving USB storage devices.

Still other embodiments include an I/O device 230 that may be a bridgebetween the system bus 250 and an external communication bus, such as: aUSB bus; an RS-232 serial connection; a Small Computer System Interface(SCSI) bus; an IEEE 1394 bus; an Ethernet bus; a Gigabit Ethernet bus;an ATM bus; a High Performance Parallel Interface (HIPPI) bus; a SuperHIPPI bus; a SerialPlus bus; a Scalable Coherent Interface (SCI) bus; aFibreChannel bus; or a Serial Attached SCSI (SAS) bus.

In some embodiments, the computing machine 200 may connect to multipledisplay devices 224A-224N, in other embodiments the computing device 200may connect to a single display device 224, while in still otherembodiments the computing device 200 connects to display devices224A-224N that are the same type or form of display, or to displaydevices that are different types or forms.

Embodiments of the display devices 224A-224N may be supported andenabled by the following: one or multiple I/O devices 230A-230N; the I/Ocontroller 223; a combination of I/O device(s) 230A-230N and the I/Ocontroller 223; any combination of hardware and software able to supporta display device 224A-224N; any type and/or form of video adapter, videocard, driver, and/or library to interface, communicate, connect orotherwise use the display devices 224A-224N. The computing device 200may in some embodiments be configured to use one or multiple displaydevices 224A-224N.

In some embodiments, the computing machine 200 may execute any operatingsystem, while in other embodiments the computing machine 200 may executeany of the following operating systems: any embedded operating system;any real-time operating system; any remote operating system; anyoperating systems for mobile computing devices; or any other operatingsystem.

In still another embodiment, the computing machine 200 may executemultiple operating systems. For example, the computing machine 200 mayexecute a virtualization platform that may execute or manage a virtualmachine executing a first operating system, while the computing machine200 executes a second operating system different from the firstoperating system.

The computing machine 200 may be embodied in any one of the followingcomputing devices: a computing workstation; a desktop computer; a laptopor notebook computer; a server; a handheld computer; a mobile telephone;a portable telecommunication device; a media playing device; a gamingsystem; a mobile computing device; a netbook; a digital audio player orany other type and/or form of computing, telecommunications or mediadevice that is capable of communication and that has sufficientprocessor power and memory capacity to perform the methods and systemsdescribed herein.

In other embodiments the computing machine 200 may be a mobile devicesuch as any one of the following mobile devices: a cellular telephone orpersonal digital assistant (PDA); a smart phone; a handheld computingdevice; any computing device that has different processors, operatingsystems, and input devices consistent with the device; or any othermobile computing device capable of performing the methods and systemsdescribed herein.

In one embodiment, the computing device 200 may be a digital audioplayer which functions as both a portable media player and as a massstorage device. In some embodiments, the computing device 200 may havedifferent processors, operating systems, and input devices consistentwith the device.

In some embodiments, the computing device 200 comprises a combination ofdevices, such as a mobile phone combined with a digital audio player orportable media player. In one of these embodiments, the computing device200 is a combination digital audio player and mobile phone. In anotherof these embodiments, the computing device 200 is a smartphone. Inanother of these embodiments, the computing device 200 is a tabletcomputer.

Referring now to FIG. 3 , generation of network connectivity basednavigation instructions 142 between any two geolocations within ageographical area 150 will be discussed. The illustrated embodimentincludes mobile computing devices 102A-102N operating within thegeographical area 150 and in communications with a server 106 via acellular base station 108 and a network 104. The navigation instructions142 are provided from the server 106 to the mobile computing devices102A making the request.

The mobile computing devices 102A-102N may be laptop computers or smartphones, for example, executing enterprise productivity software, such asXenMobile. Mobile users who are sales professionals, for example,frequently travel and typically need to participate in online meetingsand conference calls while travelling on the road. However, suchmeetings or conference calls may be interrupted due to cellular networkconnectivity issues.

As readily appreciated by those skilled in the art, signal strengthlevels may fluctuate among mobile computing devices 102A-102N operatingwithin the geographical area 150. Operation of the mobile computingdevices 102A-102N is based on a cellular service provider, such asVodafone, Sprint, Verizon, T-Mobile, or AT&T, for example. Coverage asdetermined in signal strength levels may vary among the differentcellular service providers.

To assist the mobile user with navigation instructions 142 whiletraveling within the geographical area 150, at least one of the mobilecomputing devices 102A include a map application 160, such as GoogleMaps, for example. When the map application 160 is executed by themobile computing device 102A, the mobile user is prompted on display 170via display prompt 172 to enter two geo-locations within thegeographical area 150, i.e., a start point 152 and an end point 154.

The mobile user is also prompted to select the type of route desired.Display prompt 176 on the display 170 allows the mobile user to selectnavigation instructions for a route 155 that is the shortest distancebetween the two geo-locations 152, 154 regardless of cellular networkconnectivity metrics. Display prompt 178 on the display 170 allows themobile user to select navigation instructions for a route 157 that isoptimized for cellular network connectivity metrics.

If the mobile user is to participate in an online meeting or conferencecall while traveling, the mobile user will select display prompt 178 forthe route 157 that is optimized for cellular network connectivitymetrics. Cellular network connectivity metrics include signal strengthlevels, for example. The higher the signal strength level the lesslikely the online meeting or conference call will be interrupted.

The server 106 includes a network interface 118 that is configured tointerface with the mobile computing devices 102A-102N operating withinthe geographical area 150, with at least one of the mobile computingdevices, e.g., 102A, providing the request for navigation instructionswithin the geographical area 150.

The server 106 further includes a geo-connectivity analyzer 120 and anavigation analyzer 140. The geo-connectivity analyzer 120 is configuredto receive cellular network connectivity metrics 122 for thegeographical area 150. The cellular network connectivity metric valuestypically vary within the geographical area 150.

The geo-connectivity analyzer 120 generates a network connectivity map182, as illustrated in FIG. 4 , based on the varying cellular networkconnectivity metrics. The network connectivity map 182 includes areaswith strong cellular network connectivity metric values and areas withweak cellular network connectivity metric values. The illustratednetwork connectivity map 182 is in the form of a heat map and uses darkshading to represent strong cellular network connectivity metric values,light shading to represent weak cellular network connectivity metricvalues, and no shading to represent no data collected.

The navigation analyzer 140 is coupled to the geo-connectivity analyzer120 and is configured to generate the navigation instructions 142between the two geo-locations 152, 154 based on the network connectivitymap 182. When display prompt 178 is selected by the mobile user, thenavigation instructions 142 provide a route that is optimized to includethe areas with the strong cellular network connectivity metric values.

Still referring to the network connectivity map 182, a mobile user has astart point 152 along Highway 528 and an end point 154 along Interstate95. The most direct or shortest route 155 is for the mobile user to exitfrom Highway 528 onto Highway 520 which then connects with Interstate95. However, areas along Highway 520, i.e., route 155, have weakcellular network connectivity metric values. Consequently, thenavigation instructions 142 instruct the mobile user to use theoptimized network connectivity route 157. Here, the mobile user does notexit onto Highway 520 and instead remains on Highway 528 untilInterstate 95 is reached, then the mobile user continues south onInterstate 95 to the end point 154.

The cellular network connectivity metrics 122 may be provided frommultiple sources. One of the sources is from the cellular networkproviders in the form of cellular network connectivity maps 180.Vodafone, Sprint, Verizon, T-Mobile, and AT&T are cellular networkproviders that may provide their respective cellular networkconnectivity maps 180 for the geographical area 150. Coverage asdetermined in signal strength levels may vary among the differentcellular network providers.

The cellular network connectivity maps 180 may also be referred to asheat maps. As discussed above, a heat map is a representation of data inthe form of a map or diagram in which data values are represented ascolors. The cellular network connectivity maps 180 may be similar to thenetwork connectivity maps 182 generated by the geo-connectivity analyzer120. The data being represented in the cellular network connectivitymaps 180 is signal strength values, which may be point in time values.These values may also be updated in real time.

Another source providing cellular network connectivity metrics 122 arethe other mobile computing devices 102B-102N operating within thegeographical area 150 other than the mobile computing device 102Arequesting the navigation instructions 142. Each of the mobile computingdevices 102B-102N may automatically provide cellular connectivitymetrics 122 to the geo-connectivity analyzer 120, as readily appreciatedby those skilled in the art. In other embodiments, the mobile computingdevice 102A requesting the navigation instructions 142 may also providecellular network connectivity metrics 122 to the geo-connectivityanalyzer 120.

The cellular connectivity metrics 122 include signal strengthmeasurements provided by each respective mobile computing devices102B-102N operating within the geographical area 150. The geo-locationof each mobile computing device 102B-102N providing the signal strengthmeasurement, along with the cellular network provider for each mobilecomputing device 102B-102N are also provided to the geo-connectivityanalyzer 120.

In other words, the information provided by the mobile computing devices102B-102N operating within the geographical area 150 includesgeo-location, cellular network signal strength values, vendor and otherbusiness application performance metrics. For illustration purposes, asample of collected information from the mobile computing devices102B-102N may be as follows:

{ “location”: { “lat”: 51.0, “lng”: −0.1 }, “accuracy”: 1200.4 } {“homeMobileCountryCode”: 310, “homeMobileNetworkCode”: 410, “radioType”:“gsm”, “carrier”: “Vodafone”, “signalStrength”: −60 dBm, “considerIp”:“true”, }

The information provided by the mobile computing devices 102B-102N iscorrelated with the cellular network connectivity maps 180 to enableselection of navigation routes optimized for the best cellular networkconnectivity at a given point of time. This correlation by thegeo-connectivity analyzer 120 is used to generate the networkconnectivity maps 182 which allows a navigation route with the bestnetwork coverage/connectivity to be selected so as to enable better userexperience, productivity and business continuity. Another advantageousfeature of the server is to alert a mobile user about connectivityissues and potential application performance degradation while on themove.

Referring now to the flow diagram 300 in FIG. 5 , a method forgenerating network connectivity based navigation instructions 142 for amobile computing device 102 will be discussed. From the Start (Block302), the method comprises interfacing with a plurality of mobilecomputing devices 102A-102N operating within a geographical area 150 atBlock 304, with at least one of the mobile computing devices 102Aproviding a request for navigation instructions between twogeo-locations 152, 154 within the geographical area 150.

Cellular network connectivity metrics 122 are received at Block 306 forthe geographical area 150. The cellular network connectivity metricvalues 122 vary within the geographical area 150. A network connectivitymap 182 is generated at Block 308 based on the varying cellular networkconnectivity metrics 122. The network connectivity map 182 includesareas with strong cellular network connectivity metric values and areaswith weak cellular network connectivity metric values. Betterconnectivity is provided to the mobile computing device 102A whenoperating in the areas with the strong cellular network connectivitymetric values. The navigation instructions 172 between the twogeo-locations 152, 154 are generated at Block 310 based on the networkconnectivity map 182. The navigation instructions 142 provides a routethat is optimized to include the areas with the strong cellular networkconnectivity metric values. The method ends at Block 312.

Yet another aspect is directed to a non-transitory computer readablememory for a server 106 as described above, with the non-transitorycomputer readable medium having a plurality of computer executableinstructions for causing the server 106 to perform the steps ofinterfacing with a plurality of mobile computing devices 102A-102Noperating within a geographical area 150, with at least one of themobile computing devices 102A providing a request for navigationinstructions between two geo-locations 152, 154 within the geographicalarea 150. The steps further include receiving cellular networkconnectivity metrics 122 for the geographical area 150. The cellularnetwork connectivity metric values 122 vary within the geographical area150. A network connectivity map 182 is generated based on the varyingcellular network connectivity metrics 122. The network connectivity map182 includes areas with strong cellular network connectivity metricvalues and areas with weak cellular network connectivity metric values.The navigation instructions 142 between the two geo-locations 152, 154are generated based on the network connectivity map 182. The navigationinstructions 142 provides a route that is optimized to include the areaswith the strong cellular network connectivity metric values.

Many modifications and other embodiments will come to the mind of oneskilled in the art having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it isunderstood that the disclosure is not to be limited to the specificembodiments disclosed, and that modifications and embodiments areintended to be included within the scope of the appended claims.

That which is claimed:
 1. A server comprising: a network interface configured to interface with a plurality of mobile computing devices operating within a geographical area, with at least one of the mobile computing devices providing a request for navigation instructions between two geo-locations based on prompting the user to select an optimized connectivity route prompt; and a processor coupled to said network interface and configured to perform the following: generate a network connectivity map based on varying cellular network connectivity metrics for the geographical area, and generate, based on the user-selected optimized connectivity route prompt, the navigation instructions between the two geo-locations to be provided to the at least one mobile communications device via said network interface, with the navigation instructions being generated based on the network connectivity map to provide a single route that is optimized to include areas with strong cellular network connectivity metric values.
 2. The sever according to claim 1 wherein the route provided by said processor is not the most direct route between the two geo-locations within the geographical area.
 3. The server according to claim 1 wherein the cellular network connectivity metrics are based on at least one cellular network connectivity map from at least one cellular network service provider operating within the geographical area.
 4. The sever according to claim 1 wherein the cellular network connectivity metrics are based on signal strength measurements provided by the plurality of mobile computing devices operating within the geographical area.
 5. The sever according to claim 4 wherein the signal strength measurements provided by each respective mobile computing device further include geo-coordinates on where the signal strength measurements were made.
 6. The sever according to claim 4 wherein the signal strength measurements provided by each respective mobile computing device includes identification of a cellular network service provider operating with the respective mobile computing device.
 7. A method comprising: interfacing with a plurality of mobile computing devices operating within a geographical area, with at least one of the mobile computing devices providing a request for navigation instructions between two geo-locations based on prompting the user to select an optimized connectivity route prompt; generating a network connectivity map based on varying cellular network connectivity metrics for the geographical area; and generating, based on the user-selected optimized connectivity route prompt, the navigation instructions between the two geo-locations to be provided to the at least one mobile communications device via said network interface, with the navigation instructions being generated based on the network connectivity map to provide a single route that is optimized to include areas with strong cellular network connectivity metric values.
 8. The method according to claim 7 wherein the route is not the most direct route between the two geo-locations within the geographical area.
 9. The method according to claim 7 wherein the cellular network connectivity metrics are based on at least one cellular network connectivity map from at least one cellular network service provider operating within the geographical area.
 10. The method according to claim 7 wherein the cellular network connectivity metrics are based on signal strength measurements provided by the plurality of mobile computing devices operating within the geographical area.
 11. The method according to claim 10 wherein the signal strength measurements provided by each respective mobile computing device further include geo-coordinates on where the signal strength measurements were made.
 12. The method according to claim 10 wherein the signal strength measurements provided by each respective mobile computing device includes identification of a cellular network service provider operating with the respective mobile computing device.
 13. The method according to claim 7 further comprising providing the navigation instructions to the mobile computing device providing the request.
 14. A non-transitory computer readable medium for a server, with the non-transitory computer readable medium having a plurality of computer executable instructions for causing the server to perform steps comprising: interfacing with a plurality of mobile computing devices operating within a geographical area, with at least one of the mobile computing devices providing a request for navigation instructions between two geo-locations based on prompting the user to select an optimized connectivity route prompt; generating a network connectivity map based on varying cellular network connectivity metrics for the geographical area; and generating, based on the user-selected optimized connectivity route prompt, the navigation instructions between the two geo-locations to be provided to the at least one mobile communications device via said network interface, with the navigation instructions being generated based on the network connectivity map to provide a single route that is optimized to include areas with strong cellular network connectivity metric values.
 15. The non-transitory computer readable medium according to claim 14 wherein the route is not the most direct route between the two geo-locations within the geographical area.
 16. The non-transitory computer readable medium according to claim 14 wherein the cellular network connectivity metrics are based on at least one cellular network connectivity map from at least one cellular network service provider operating within the geographical area.
 17. The non-transitory computer readable medium according to claim 14 wherein the cellular network connectivity metrics are based on signal strength measurements provided by the plurality of mobile computing devices operating within the geographical area.
 18. The non-transitory computer readable medium according to claim 17 wherein the signal strength measurements provided by each respective mobile computing device further include geo-coordinates on where the signal strength measurements were made.
 19. The non-transitory computer readable medium according to claim 17 wherein the signal strength measurements provided by each respective mobile computing device includes identification of a cellular network service provider operating with the respective mobile computing device. 